From af0973c847128ef18a231aa133653413523861d0 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 17 Dec 2020 15:49:00 +0000 Subject: [PATCH] a11y: Fix removing mnemonic widgets We must not use the variadic arguments version with GList, as it expects a pointer to a GtkAccessible. --- gtk/gtkwidget.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 9204d62210..b26103e87b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -9504,12 +9504,16 @@ gtk_widget_remove_mnemonic_label (GtkWidget *widget, if (new_list != NULL && new_list->data != NULL) { - GList *list; + GtkAccessibleRelation relation = GTK_ACCESSIBLE_RELATION_LABELLED_BY; + GValue value = G_VALUE_INIT; - list = gtk_widget_list_mnemonic_labels (widget); - gtk_accessible_update_relation (GTK_ACCESSIBLE (widget), - GTK_ACCESSIBLE_RELATION_LABELLED_BY, list, - -1); + /* The ATContext takes ownership of the GList returned by list_mnemonic_labels(), + * so we don't need to free it + */ + gtk_accessible_relation_init_value (relation, &value); + g_value_set_pointer (&value, gtk_widget_list_mnemonic_labels (widget)); + gtk_accessible_update_relation_value (GTK_ACCESSIBLE (widget), 1, &relation, &value); + g_value_unset (&value); } else { -- 2.30.2